package com.ruoyi.manage.organization.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Dict;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Tolerate;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 需求匹配对象 oc_financing_match
 *
 * @author ruoyi
 * @date 2025-08-19
 */
@Data
@ApiModel(value="需求匹配对象", description="需求匹配")
@TableName("oc_financing_match")
@Builder
public class OcFinancingMatch extends BaseEntity implements Serializable {

    private static final long serialVersionUID=1L;


    /**
     *  ID
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "ID")
    private  Long  id;

    /**
     *  批次号
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "批次号")
    @ApiModelProperty(value = "批次号")
    private  String  bachNo;

    /**
     *  匹配编号
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "匹配编号")
    @ApiModelProperty(value = "匹配编号")
    private  String  machId;

    /**
     *  融资申请编号
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "融资申请编号")
    @ApiModelProperty(value = "融资申请编号")
    private  String  applyId;

    /**
     *  匹配类型-1:系统匹配 2:产品申请（1295996452140527619）
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Dict(readConverterExp = "1=295996452140527619")
    @Excel(name = "匹配类型-1:系统匹配 2:产品申请", readConverterExp = "1=295996452140527619")
    @ApiModelProperty(value = "匹配类型-1:系统匹配 2:产品申请",notes="1=295996452140527619")
    private  String  matchType;

    /**
     *  匹配状态（1295988828980432898）
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Dict(readConverterExp = "1=295988828980432898")
    @Excel(name = "匹配状态", readConverterExp = "1=295988828980432898")
    @ApiModelProperty(value = "匹配状态",notes="1=295988828980432898")
    private  String  matchState;

    /**
     *  产品id
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品id")
    @ApiModelProperty(value = "产品id")
    private  Long  productId;

    /**
     *  产品名称
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品名称")
    @ApiModelProperty(value = "产品名称")
    private  String  productName;

    @Excel(name = "产品名称")
    @ApiModelProperty(value = "产品名称")
    private  String  orgName;

    /**
     *  企业id
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业id")
    @ApiModelProperty(value = "企业id")
    private  Long  enterpriseId;

    /**
     *  企业名称
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业名称")
    @ApiModelProperty(value = "企业名称")
    private  String  enterpriseName;

    /**
     *  统一社会信用代码
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "统一社会信用代码")
    @ApiModelProperty(value = "统一社会信用代码")
    private  String  creditCode;

    /**
     *  企业所在地省
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业所在地省")
    @ApiModelProperty(value = "企业所在地省")
    private  String  provinceSiteId;

    /**
     *  企业所在地省名称
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业所在地省名称")
    @ApiModelProperty(value = "企业所在地省名称")
    private  String  provinceName;

    /**
     *  企业所在地市
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业所在地市")
    @ApiModelProperty(value = "企业所在地市")
    private  String  citySiteId;

    /**
     *  企业所在地市名称
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业所在地市名称")
    @ApiModelProperty(value = "企业所在地市名称")
    private  String  cityName;

    /**
     *  企业所在地区
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业所在地区")
    @ApiModelProperty(value = "企业所在地区")
    private  String  areaSiteId;

    /**
     *  企业所在地区名称
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业所在地区名称")
    @ApiModelProperty(value = "企业所在地区名称")
    private  String  areaName;

    /**
     *  创建时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private  Date  createTime;

    /**
     *  编辑时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "编辑时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "编辑时间")
    private  Date  updateTime;

    /**
     *  删除标识
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "删除标识")
    @ApiModelProperty(value = "删除标识")
    private  Integer  deleted;

    /**
     *  版本
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "版本")
    @ApiModelProperty(value = "版本")
    private  Long  version;

    /**
     *  申请时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "申请时间")
    private  Date  applyTime;

    /**
     *  期望融资金额最小值
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "期望融资金额最小值")
    @ApiModelProperty(value = "期望融资金额最小值")
    private  BigDecimal  applyAmountMin;

    /**
     *  期望融资金额最大值
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "期望融资金额最大值")
    @ApiModelProperty(value = "期望融资金额最大值")
    private  BigDecimal  applyAmountMax;

    /**
     *  期望到账时间类型
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "期望到账时间类型")
    @ApiModelProperty(value = "期望到账时间类型")
    private  String  arrivalTimeType;

    /**
     *  期望融资期限下限
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "期望融资期限下限")
    @ApiModelProperty(value = "期望融资期限下限")
    private  String  maturityMin;

    /**
     *  期望融资期限上限
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "期望融资期限上限")
    @ApiModelProperty(value = "期望融资期限上限")
    private  String  maturityMax;

    /**
     *  期望利率上限%
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "期望利率上限%")
    @ApiModelProperty(value = "期望利率上限%")
    private  BigDecimal  rateMax;

    /**
     *  期望利率下限%
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "期望利率下限%")
    @ApiModelProperty(value = "期望利率下限%")
    private  BigDecimal  rateMin;

    /**
     *  纳税等级选项
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "纳税等级选项")
    @ApiModelProperty(value = "纳税等级选项")
    private  String  taxLevel;

    /**
     *  企业基本户开户行
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "企业基本户开户行")
    @ApiModelProperty(value = "企业基本户开户行")
    private  String  depositBank;

    /**
     *  纳税金额选项
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "纳税金额选项")
    @ApiModelProperty(value = "纳税金额选项")
    private  String  taxAmount;

    /**
     *  收入数据选项
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "收入数据选项")
    @ApiModelProperty(value = "收入数据选项")
    private  String  incomeData;

    /**
     *  盈亏状态选项
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "盈亏状态选项")
    @ApiModelProperty(value = "盈亏状态选项")
    private  String  profitState;

    /**
     *  抵押物标识
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "抵押物标识")
    @ApiModelProperty(value = "抵押物标识")
    private  String  collateralFlag;

    /**
     *  之前贷款银行
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "之前贷款银行")
    @ApiModelProperty(value = "之前贷款银行")
    private  String  loanBankName;

    /**
     *  当前贷款余额
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "当前贷款余额")
    @ApiModelProperty(value = "当前贷款余额")
    private  BigDecimal  loanLeftAmount;

    /**
     *  担保类型
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "担保类型")
    @ApiModelProperty(value = "担保类型")
    private  String  guaranteeType;

    /**
     *  还款方式
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "还款方式")
    @ApiModelProperty(value = "还款方式")
    private  String  repaymentType;

    /**
     *  产品额度下限
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品额度下限")
    @ApiModelProperty(value = "产品额度下限")
    private  BigDecimal  amountLimitLower;

    /**
     *  产品额度上限
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品额度上限")
    @ApiModelProperty(value = "产品额度上限")
    private  BigDecimal  amountLimitUpper;

    /**
     *  产品期望利率下限(单位:%)
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品期望利率下限(单位:%)")
    @ApiModelProperty(value = "产品期望利率下限(单位:%)")
    private  BigDecimal  interestRateLimitLower;

    /**
     *  产品期望利率上限(单位:%)
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品期望利率上限(单位:%)")
    @ApiModelProperty(value = "产品期望利率上限(单位:%)")
    private  BigDecimal  interestRateLimitUpper;

    /**
     *  产品贷款期限下限
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品贷款期限下限")
    @ApiModelProperty(value = "产品贷款期限下限")
    private  Long  loanPeriodLimitLower;

    /**
     *  产品贷款期限上限
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品贷款期限上限")
    @ApiModelProperty(value = "产品贷款期限上限")
    private  Long  loanPeriodLimitUpper;

    /**
     *  产品主担保方式
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品主担保方式")
    @ApiModelProperty(value = "产品主担保方式")
    private  String  mainGuaranteeWay;

    /**
     *  产品二级担保方式（多个之间以逗号分隔）
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Dict(readConverterExp = "多=个之间以逗号分隔")
    @Excel(name = "产品二级担保方式", readConverterExp = "多=个之间以逗号分隔")
    @ApiModelProperty(value = "产品二级担保方式",notes="多=个之间以逗号分隔")
    private  String  secondGuaranteeWay;

    /**
     *  产品特点
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品特点")
    @ApiModelProperty(value = "产品特点")
    private  String  productFeature;

    /**
     *  产品还款方式（多个之间以逗号分隔）
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Dict(readConverterExp = "多=个之间以逗号分隔")
    @Excel(name = "产品还款方式", readConverterExp = "多=个之间以逗号分隔")
    @ApiModelProperty(value = "产品还款方式",notes="多=个之间以逗号分隔")
    private  String  repaymentWay;

    /**
     *  产品图片
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品图片")
    @ApiModelProperty(value = "产品图片")
    private  String  productLogo;

    /**
     *  产品创建机构路径
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品创建机构路径")
    @ApiModelProperty(value = "产品创建机构路径")
    private  String  orgPath;

    /**
     *  产品覆盖范围所有机构路径
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "产品覆盖范围所有机构路径")
    @ApiModelProperty(value = "产品覆盖范围所有机构路径")
    private  String  coveragePath;

    /**
     *  过期时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "过期时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "过期时间")
    private  Date  expiredTime;

    /**
     *  融资顾问
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "融资顾问")
    @ApiModelProperty(value = "融资顾问")
    private  String  financialAdvisor;

    /**
     *  站点ID
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "站点ID")
    @ApiModelProperty(value = "站点ID")
    private  String  siteId;

    /**
     *  本地站点编号
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "本地站点编号")
    @ApiModelProperty(value = "本地站点编号")
    private  String  siteCode;

    /**
     *  站点名称
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "站点名称")
    @ApiModelProperty(value = "站点名称")
    private  String  siteName;

    /**
    * 抢单状态
    * */
    private String state;

    /**
     *  优惠券id
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "优惠券id")
    @ApiModelProperty(value = "优惠券id")
    private  String  ticketId;
    @TableField(exist = false)
    private List<String> ids;
    @Tolerate
    public OcFinancingMatch(){}
}
